/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Model;

/**
 *
 * @author lcc
 */
public class FuncoesIngresso {

    public boolean vendeIngressoCadeira(Evento e, String numero, String fileira) {
        for (Ingresso i : e.getIngressos()) {
            if ((i.getNumLugar() == Integer.valueOf(numero)) && (i.getFileira() == fileira.charAt(0))) {
                if (!i.isVendido()) {
                    i.vendeIngresso();
                    return true;
                }
            }

        }
        return false;
    }

    public boolean vendeIngressoEmPe(Evento evento, char setor) {
        switch (setor) {
            case 'c':
                if (evento.getQtdIngressosCamarote() > 0) {
                    evento.getIngressos().get(evento.getQtdIngressos() - 1).vendeIngresso();
                    evento.setQtdIngressos(evento.getQtdIngressos() - 1);
                    evento.setQtdIngressosCamarote(evento.getQtdIngressosCamarote() - 1);
                    return true;
                }
                break;
            case 'n':
                if (evento.getQtdIngressosNormal() > 0) {
                    evento.getIngressos().get(evento.getQtdIngressos() - 1).vendeIngresso();
                    evento.setQtdIngressos(evento.getQtdIngressos() - 1);
                    evento.setQtdIngressosNormal(evento.getQtdIngressosNormal() - 1);
                    return true;
                }
                break;
            case 'v':
                if (evento.getQtdIngressosVIP() > 0) {
                    evento.getIngressos().get(evento.getQtdIngressos() - 1).vendeIngresso();
                    evento.setQtdIngressos(evento.getQtdIngressos() - 1);
                    evento.setQtdIngressosVIP(evento.getQtdIngressosVIP() - 1);
                    return true;
                }
                break;
        }
        return false;

    }

    public boolean verificaDisponibilidadeCadeira(Evento e, String numero, String fileira) {
        for (Ingresso i : e.getIngressos()) {
            if ((i.getNumLugar() == Integer.valueOf(numero)) && (i.getFileira() == fileira.charAt(0))) {
                if (!i.isVendido()) {
                    return true;
                }
            }
        }
        return false;
    }

    public boolean cancelaIngressoEmPe(Evento evento, char setor) {
        if (evento.getQtdIngressosVendidos() > 0) {
            switch (setor) {
                case 'c':
                    if (evento.getQtdIngressosCamarote() < 120 && evento.getQtdIngressosCamarote() > 0) {
                        evento.getIngressos().get(evento.getQtdIngressos() - 1).cancelaIngresso();
                        evento.setQtdIngressos(evento.getQtdIngressos() + 1);
                        evento.setQtdIngressosCamarote(evento.getQtdIngressosCamarote() + 1);
                        return true;
                    }
                    break;
                case 'n':
                    if (evento.getQtdIngressosNormal() < 120 && evento.getQtdIngressosCamarote() > 0) {
                        evento.getIngressos().get(evento.getQtdIngressos() - 1).cancelaIngresso();
                        evento.setQtdIngressos(evento.getQtdIngressos() + 1);
                        evento.setQtdIngressosNormal(evento.getQtdIngressosNormal() + 1);
                        return true;
                    }
                    break;
                case 'v':
                    if (evento.getQtdIngressosVIP() < 120 && evento.getQtdIngressosCamarote() > 0) {
                        evento.getIngressos().get(evento.getQtdIngressos() - 1).cancelaIngresso();
                        evento.setQtdIngressos(evento.getQtdIngressos() + 1);
                        evento.setQtdIngressosVIP(evento.getQtdIngressosVIP() + 1);
                        return true;
                    }
                    break;
            }
        }
        return false;
    }

    public boolean cancelaIngressoCadeira(Evento evento, String fileira, String numero) {
        for (Ingresso i : evento.getIngressos()) {
            if ((i.getNumLugar() == Integer.valueOf(numero)) && (i.getFileira() == fileira.charAt(0))) {
                if (i.isVendido()) {
                    i.cancelaIngresso();
                    return true;
                }
            }

        }
        return false;
    }
}
